package pres.wchen.oa.cor.shiro.service.impl;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import pres.wchen.oa.cor.shiro.model.BaseModel;
import pres.wchen.oa.cor.shiro.model.SysRole;
import pres.wchen.oa.cor.shiro.service.SysRoleService;
import pres.wchen.oa.cor.shiro.dao.SysRoleMapper;

/**
 * 源文件名：SysRoleServiceImp.java
 * 作者：wchen
 * 创建时间：2018/1/14
 * 文件描述：角色表
 * 版权所有：Copyright 2018, Inc. All Rights Reserved.
 * @修改信息： 
 */
@Service("sysRoleService")
public class SysRoleServiceImp extends BaseService implements SysRoleService  {
	@Autowired
	private SysRoleMapper sysRoleMapper;

	/**
	 * @param sysRole
	 * @方法描述 新增
	 * @创建作者 wchen
	 * @方法入参 map
	 * @返回值
	 * @创建日期 2018/1/14
	 */
	@Override
	public Long insert(SysRole sysRole) {
		sysRoleMapper.insert(sysRole);
		return sysRole.getId();
	}

	/**
	 * @param id
	 * @方法描述 删除
	 * @创建作者 wchen
	 * @方法入参 map
	 * @返回值
	 * @创建日期 2018/1/14
	 */
	@Override
	public Integer delete(Long id) {
		return sysRoleMapper.delete(id);
	}

	/**
	 * @param sysRole
	 * @方法描述 更新
	 * @创建作者 wchen
	 * @方法入参 map
	 * @返回值
	 * @创建日期 2018/1/14
	 */
	@Override
	public Integer update(SysRole sysRole) {
		return sysRoleMapper.update(sysRole);
	}

	/**
	 * @param id
	 * @方法描述 详情
	 * @创建作者 wchen
	 * @方法入参 map
	 * @返回值
	 * @创建日期 2018/1/14
	 */
	@Override
	public SysRole info(Long id) {
		Map map = new HashMap();
		map.put("id", id);
		return sysRoleMapper.info(map);
	}

	/**
	 * @param map
	 * @方法描述 列表
	 * @创建作者 wchen
	 * @方法入参 map
	 * @返回值
	 * @创建日期 2018/1/14
	 */
	@Override
	public BaseModel list(Map map) {
		super.pagingList(map);
		List<SysRole> list = sysRoleMapper.list(map);
		return super.doPagingResult(list);
	}


	/**
	 * @param userId
	 * @方法描述 查询用户角色列表
	 * @创建作者 wchen
	 * @方法入参 map
	 * @返回值
	 * @创建日期 2018/1/17
	 */
	@Override
	public BaseModel userRoleList(Long userId, Integer pageNo, Integer pageSize) {
		Map conditionMap = new HashMap();
		conditionMap.put("userId", userId);
		conditionMap.put("pageNo", pageNo);
		conditionMap.put("pageSize", pageSize);
		super.pagingList(conditionMap);
		List<SysRole> list = sysRoleMapper.userRoleList(conditionMap);
		return super.doPagingResult(list);
	}


	/**
	 * @param map
	 * @方法描述 查询用户角色列表(区分是否勾选)
	 * @创建作者 wchen
	 * @方法入参 map
	 * @返回值
	 * @创建日期 2018/1/17
	 */
	@Override
	public BaseModel chooseUserRoleList(Map map) {
		super.pagingList(map);
		List<Map> list = sysRoleMapper.chooseUserRoleList(map);
		return super.doPagingResult(list);
	}

	/**
	 * @param map
	 * @方法描述 用户添加角色
	 * @创建作者 wchen
	 * @方法入参 map
	 * @返回值
	 * @创建日期 2018/1/18
	 */
	@Override
	public Integer addRolePermissions(Map map) {
		return sysRoleMapper.addRolePermissions(map);
	}

	/**
	 * @param roleId
	 * @方法描述 删除用户角色
	 * @创建作者 wchen
	 * @方法入参 map
	 * @返回值
	 * @创建日期 2018/1/18
	 */
	@Override
	public Integer deleteRolePermissions(Long roleId) {
		return sysRoleMapper.deleteRolePermissions(roleId);
	}
}